package ws;

import java.util.ArrayList;
import java.util.Collection;

import org.orm.PersistentException;
import org.orm.PersistentTransaction;

import SOAPVO.RutaProgramadaSOAPVO;
import SOAPVO.RutaSOAPVO;

import com.google.gson.Gson;

public class RutaSOA {
	private static final int ROW_COUNT = 100;



	public String buscarRutaEPV(String us) throws PersistentException {
		String ms = "";
		Collection<RutaSOAPVO> colectionruta = new ArrayList<RutaSOAPVO>();

		if ((us == null) || us.equals("")) {
			ms = "No se valido usuario...";
		} else {
			//			try {



			orm.DAOFactory lDaoFactory = orm.DAOFactory.getDAOFactory();
			// System.out.println("...");

			orm.Tbv_ruta[] ormRutas = lDaoFactory.getTbv_rutaDAO().listTbv_rutaByQuery("tbv_usuarious_id_usuario='" + us + "'", null);

			int tam = Math.min(ormRutas.length, ROW_COUNT);

			if(tam==0){

				ms="No existen rutas...";

			}else{

				for (int i = 0; i < tam; i++) {
//					System.out.println(ormRutas[i].getTbv_usuarious_id_usuario().getUs_id_usuario());
					RutaSOAPVO obj = RutaSOAPVO.crearRutaSOAPVO(ormRutas[i]);
					colectionruta.add(obj);
				}


				ms=  new Gson().toJson(colectionruta);
//				System.out.println("JSON: "+ms);
			}

		}

		return ms;

	}


	public String buscarRutasProgramadas(String ruta, String fecha){
		String ret="";
		Collection<RutaProgramadaSOAPVO> colectionRutas = new ArrayList<RutaProgramadaSOAPVO>();
		if(ruta.equals("") || ruta.isEmpty()){
			ret="Ingrese un dato valido";
		}else{
			try{

				orm.DAOFactory lDaoFactory = orm.DAOFactory.getDAOFactory();
				orm.Tbv_ruta_programada [] rpORM = lDaoFactory.getTbv_ruta_programadaDAO().listTbv_ruta_programadaByQuery("tbv_rutaru_id_ruta ='"+ruta+"' AND rp_fecha_ruta='"+fecha+"'", null);

				if(rpORM.length==0){
					ret="No existen rutas programadas...";
				}else{
					for(int i=0;i<rpORM.length;i++){
						RutaProgramadaSOAPVO obj = RutaProgramadaSOAPVO.crearRutaProgramada(rpORM[i]);
						colectionRutas.add(obj);

					}

					ret = new Gson().toJson(colectionRutas);
//					System.out.println("JSON: "+ret);
				}


			}catch (Exception e) {
				// TODO: handle exception
			ret="Retorno al enviar los datos...";
			}

		}


		return ret;
	}


}
